import Router from 'koa-router';
import ProductController from "../controller/productController";

const router = new Router();

router.prefix('/api/product');

router
  /**
   * @swagger
   * /api/product/listV2:
   *   get: 
   *     description: 商品列表 
   *     tags: [商品] 
   *     summary: "获取商品列表"
   *     parameters:
   *       - name: shop_id
   *         in: query
   *         description: 店铺ID
   *         required: true
   *       - name: page
   *         in: query
   *         description: 页码
   *         required: true
   *       - name: size
   *         in: query
   *         description: 页数
   *         required: true
   *     produces: 
   *       - application/json 
   *     responses: 
   *       200:
   *         description: 获取数据列表 
   * */
  .post('/listV2', ProductController.listV2)
  /**
     * @swagger
     * /api/product/detail:
     *   get: 
     *     description: 商品详情 
     *     tags: [商品] 
     *     summary: "获取商品详情"
     *     parameters:
     *       - name: product_id
     *         in: query
     *         description: 商品ID
     *         required: false
     *       - name: out_product_id
     *         in: query
     *         description: 外部商家编码，商家自定义字段
     *         required: fasle
     *       - name: show_draft
     *         in: query
     *         description: true：读取草稿数据；false：读取线上数据；不传默认为false
     *         required: false
     *       - name: store_id
     *         in: query
     *         description: 门店ID
     *         required: false
     *     produces: 
     *       - application/json 
     *     responses: 
     *       200:
     *         description: 获取数据列表 
     * */
  .get('/detail', ProductController.detail)
  // 批量上传图片
  .post('/batchUploadImageSync', ProductController.batchUploadImageSync)
  /**
    * @swagger
    * /api/product/publishProduct:
    *   post: 
    *     description: 发布商品 
    *     tags: [商品] 
    *     summary: "发布商品"
    *     parameters:
    *     produces: 
    *       - application/json 
    *     responses: 
    *       200:
    *         description: 获取数据列表 
    * */
  .post('/publishProduct', ProductController.publishProduct)

  /**
  * @swagger
  * /api/product/editV2:
  *   post: 
  *     description: 编辑商品 
  *     tags: [商品] 
  *     summary: "编辑商品"
  *     parameters:
  *     produces: 
  *       - application/json 
  *     responses: 
  *       200:
  *         description: 获取数据列表 
  * */
  .post('/editV2', ProductController.editV2)
  /**
* @swagger
* /api/product/editV2async:
*   post: 
*     description: 异步编辑商品 
*     tags: [商品] 
*     summary: "异步编辑商品"
*     parameters:
*     produces: 
*       - application/json 
*     responses: 
*       200:
*         description: 获取数据列表 
* */
  .post('/editV2async', ProductController.editV2async)

  .get('/getCatePropertyV2', ProductController.getCatePropertyV2)

  .get('/queryTestApi', ProductController.queryTestApi)

  //获取规则

  .get('/getProductUpdateRule', ProductController.getProductUpdateRule)

  /**
  * @swagger
  * /api/product/setOffline:
  *   post: 
  *     description: 下架商品 
  *     tags: [商品] 
  *     summary: "下架商品"
  *     parameters:
  *     produces: 
  *       - application/json 
  *     responses: 
  *       200:
  *         description: 获取数据列表 
  * */
  .post('/setOffline', ProductController.setOffline)
  /**
   * @swagger
   * /api/product/del:
   *   post: 
   *     description: 删除商品 
   *     tags: [商品] 
   *     summary: "删除商品"
   *     parameters:
   *     produces: 
   *       - application/json 
   *     responses: 
   *       200:
   *         description: 获取数据列表 
   * */
  .post('/del', ProductController.del)
  /**
   * @swagger
   * /api/product/brand/list:
   *   get: 
   *     description: 获取泪目品牌可用列表 
   *     tags: [商品] 
   *     summary: "获取泪目品牌可用列表"
   *     parameters:
   *     produces: 
   *       - application/json 
   *     responses: 
   *       200:
   *         description: 获取数据列表 
   * */
  .get('/brand/list', ProductController.brandList)
  /**
   * @swagger
   * /api/product/rightsEditInfo:
   *   get: 
   *     description: 获取用户目前权益以及编辑使用的量和可以使用的量 
   *     tags: [商品] 
   *     summary: "获取用户目前权益以及编辑使用的量和可以使用的量"
   *     parameters:
   *     produces: 
   *       - application/json 
   *     responses: 
   *       200:
   *         description: 获取数据列表 
   * */
  .get('/rightsEditInfo', ProductController.rightsEditInfo)

  /**
   * @swagger
   * /api/product/liebianRecord:
   *   post: 
   *     description: 保存裂变记录到数据库 
   *     tags: [商品] 
   *     summary: "保存裂变记录到数据库"
   *     parameters:
   *     produces: 
   *       - application/json 
   *     responses: 
   *       200:
   *         description: 获取数据列表 
   * */
  .post('/liebianRecord', ProductController.liebianRecord)

  /**
   * @swagger
   * /api/product/liebianList:
   *   post: 
   *     description: 获取裂变记录 
   *     tags: [商品] 
   *     summary: "获取裂变记录"
   *     parameters:
   *     produces: 
   *       - application/json 
   *     responses: 
   *       200:
   *         description: 获取数据列表 
   * */
  .get('/liebianList', ProductController.liebianList)




export default router;